﻿/**	\file		icase.h
 *	\date		(2014-09-16 23:02:27)/(2014-11-24 14:58:19)
 *-----------------------------------------------------------------------------
 *	\version	1.0.0.1
 *	\author		Nick Shallery	(nicknide@gmail.com)
 *	\copyright	YOU HAVE ALL LEFT WITH THIS CODE WHILE YOU KEEP COMMENT IN EVERY COPY.
 *-----------------------------------------------------------------------------
**/

#if			!defined(__LOLIX__TRIAL__I_CASE__H___NICK__K_IN_G__)
#define		__LOLIX__TRIAL__I_CASE__H___NICK__K_IN_G__


#if			!defined(__LOLIX__LOLIX_TYPE__K_IN_G__)
	#include	"../include/lolix/lolix_type.h"
#endif	//	!defined(__LOLIX__LOLIX_TYPE__K_IN_G__)

namespace lxut{class reg_pool;}

namespace lxtrial
{
	class probe;
	/**
	 * \brief	测试用例.
	**/
	class LOLIX_NO_VTABLE icase
		: public lolix::itf
	{
		LOLIX_DECLARE_ITF(lxtrial::icase, lolix::itf, (0x6faa45e7, 0xc64448e3, 0xb7e620f3, 0xfa2d065e));

		/**
		 * \brief	get the case's name.
		 * \remark	each cases's name must uniqued.
		**/
		LOLIX_INTERFACE(name, lolix::lx_wchar const*, (void)const);

		/**
		 * \brief	测试当前用例.
		 *
		 * \param	reg  	当前用例的参数.
		 * \param	prb  	给此对象分配的探针.
		 *
		 * \return	lolix::LOLIX_RETNV	返回测试是否成功
		**/
		LOLIX_INTERFACE(test, lolix::LOLIX_RETNV, (lxut::reg_pool* reg, probe* prb));
	};
}

#endif	//	!defined(__LOLIX__TRIAL__I_CASE__H___NICK__K_IN_G__)
